package com.gshrms.common.core.domain.entity;

import java.util.Date;
import java.util.List;
import javax.validation.constraints.*;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.gshrms.common.core.domain.CommonEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gshrms.common.annotation.Excel;
import com.gshrms.common.annotation.Excel.ColumnType;
import com.gshrms.common.annotation.Excel.Type;
import com.gshrms.common.annotation.Excels;
import com.gshrms.common.core.domain.BaseEntity;
import com.gshrms.common.xss.Xss;

/**
 * 用户对象 sys_user
 *
 * @author ruoyi
 */
@Data
public class SysUser extends CommonEntity {
    private static final long serialVersionUID = 1L;

    @TableId(value = "user_id", type = IdType.AUTO)
    /** 用户ID */
    @Excel(name = "用户序号", type = Type.EXPORT, cellType = ColumnType.NUMERIC, prompt = "用户编号")
    private Long userId;

    @ApiModelProperty("部门ID")
    @TableField(exist = false)
    private Long deptId;

    @ApiModelProperty("组织Id")
    private String orgId;

    @ApiModelProperty("用户账号")
    private String userName;

    @ApiModelProperty("用户昵称")
    private String nickName;

    @ApiModelProperty("用户类型(00:普通用户,01:主管理员,02:子管理员)")
    private String userType;

    @ApiModelProperty("手机号码")
    private String phonenumber;

    @ApiModelProperty("用户性别（0男 1女 2未知）")
    private String sex;

    @ApiModelProperty("头像地址")
    private String avatar;

    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty("应聘者姓名")
    private String applicantName;

    @ApiModelProperty("是否接受调剂")
    private String isAdjustment;

    @ApiModelProperty("目前状态")
    private String currentStatus;

    @ApiModelProperty("来源渠道：内推、官网")
    private String channel;

    @ApiModelProperty("工作状态")
    private String workStatus;

    @ApiModelProperty("工作年限")
    private String workDuration;

    @ApiModelProperty("照片")
    private String photo;

    @ApiModelProperty("性别")
    private String gender;

    @ApiModelProperty("身份证号")
    private String idCard;

    @ApiModelProperty("出生日期")
    private String birthday;

    @ApiModelProperty("手机号")
    private String mobile;

    @ApiModelProperty("最高学历")
    private String maxEducation;

    @ApiModelProperty("专业")
    private String major;

    @ApiModelProperty("籍贯")
    private String nativePlace;

    @ApiModelProperty("通讯地址省市区")
    private String address;

    @ApiModelProperty("通讯地址详细地址")
    private String addressDetailed;

    @ApiModelProperty("民族")
    private String nation;

    @ApiModelProperty("政治面貌")
    private String politicalStatus;

    @ApiModelProperty("婚姻状况")
    private String maritalStatus;

    @ApiModelProperty("正面彩色照片（jpg格式）")
    private String frontPhoto;

    @ApiModelProperty("紧急联系姓名")
    private String contacts;

    @ApiModelProperty("与应聘者关系")
    private String contactsRelationship;

    @ApiModelProperty("紧急联系人姓名")
    private String contactsPhone;

    @ApiModelProperty("身份证正反面图片地址")
    private String idCardImage;

    @ApiModelProperty("子表数据")
    private String tableJson;

    @ApiModelProperty("附件名称")
    private String attachmentName;

    @ApiModelProperty("附件地址")
    private String attachmentAddress;

    @ApiModelProperty("签名图片地址")
    private String signImage;

    @ApiModelProperty("帐号状态（0正常 1停用）")
    private String status;

    @ApiModelProperty("是否已更新个人信息 0未更新 1已更新")
    private Integer isUpdate;

    @ApiModelProperty("删除标志（0代表存在 2代表删除）")
    private String delFlag;

    @ApiModelProperty("最后登录IP")
    private String loginIp;

    @ApiModelProperty("最后登录时间")
    private Date loginDate;

    @ApiModelProperty("创建者")
    private String createBy;

    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新者")
    private String updateBy;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("参加工作日期")
    private String employmentDate;

    @ApiModelProperty("加入时间")
    private Date addTime;
}
